package conf

import (
	"github.com/BurntSushi/toml"
	"github.com/caarlos0/env/v6"
)

// 此文件，实现配置的加载；通过toml或环境变量的方式加载

// 定义一个全局变量，实现默认的配置
var C *Config = DefaultConfig()

// 通过toml文件，加载程序配置
func LoadFromToml(filepath string) error {
	// 错误代码写法：_, err := toml.DecodeFile("filepath", C)
	// 加载后的配置，替换原配置C
	_, err := toml.DecodeFile(filepath, C)
	if err != nil {
		return err
	}
	return nil
}

// 通过环境变量，加载程序配置
// 要设置环境变量：设置--工作区--搜索 test env
// "go.testEnvFile": "${workspaceFolder}/vblog-01/vblog/etc/conf.env"
func LoadFromEnv() error {
	// 加载后的配置，替换原配置C
	if err := env.Parse(C); err != nil {
		return err
	}
	return nil
}
